SPLAT: A Tool for Model-Checking and Dynamically-Enforcing Abstractions

نویسندگان

  • Anil Madhavapeddy
  • David J. Scott
  • Richard Sharp
چکیده

Conventional software model-checking involves (i) creating an abstract model of a complex application; (ii) validating this model against the application; and (iii) checking safety properties against the abstract model. To non-experts, steps (i) and (ii) are often the most daunting. Firstly how does one decide which aspects of the application to include in the abstract model? Secondly, how does one determine whether the abstraction inadvertently “hides” critical bugs? Similarly, if a counter-example is found, how does one determine whether this is a genuine bug or just a modelling artifact? Splat attempts to simplify the model specification and validation tasks with a view to making model checking more accessible to regular programmers. We provide a high-level modelling language, SPL, which enables developers to specify models in terms of allowable program events (e.g. valid sequences of received network packets). We have implemented a compiler that translates SPL into both Promela and a number of general purpose programming languages (e.g. C, OCaml, Java). The generated Promela can be used with SPIN [4] in order to check static properties of the model. The generated code provides an executable model in the form of a safety monitor : a program which dynamically checks whether the application’s behaviour deviates from the specified model. A developer can link this safety monitor against their application in order to dynamically ensure that the application’s behaviour does not deviate from the model. If the safety monitor detects that the application has violated the model then it logs this event and terminates the application. Although this technique simplifies model specification and validation it is, of course, not appropriate for all systems. For example, dynamically shutting down a fly-by-wire control system when a model violation is detected is not an option. However, we observe that there are a large class of applications where dynamic termination, while not desirable, is preferable to (say) a security breach. It is these areas in which we believe Splat can deliver real benefits. Our work currently focusses on implementing servers for common Internet protocols securely and correctly. None of the major industrial implementations of protocols such as HTTP (Apache), SMTP (Sendmail/Postfix), or DNS (BIND)

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Splat: A Network Switch/Port Configuration Management Tool

We present the design and implementation of Splat, a tool for managing network edge switch ports and port-to-host configurations. We discuss the need for such a tool as part of a major network upgrade, and our discovery that most existing tools ignore this area or approach it from a core network point of view. Important design considerations include the current procedures and habits of our syst...

متن کامل

Model Checking of Real-time Reachability Properties Using Abstractions (regular-paper Submission for Tacas'98)

Model checking for real-time systems suuers, in practice, from the state-explosion problem: the size of the state space grows exponentially with many parameters of the system, such as the number of clocks, the size of constants, or the number of components making up the system. In order to cope with state explosion, we propose to use abstractions allowing for a reduction of the state-space whil...

متن کامل

Automatic data path abstraction for verification of large scale designs

The state space explosion problem is a hurdle in the acceptance of model checking as a viable tool for verification of large-scale designs. Abstractions may be used to simplify designs, while preserving target verification properties. We propose a simple methodology for abstracting away portions of the data path, thus rendering a large state-space model of the design amenable for verification u...

متن کامل

Time-Aware Abstractions in HybridSal

HybridSal is a tool for enabling verification of hybrid systems using infinite bounded model checking and k-induction. The core component of the tool is an abstraction engine that automatically creates a discrete, but infinite, state transition system abstraction of the continuous dynamics in the system. In this paper, we describe HybridSal’s new capability to create time-aware relational abstr...

متن کامل

Bonsai: Cutting Models Down to Size

In model checking, abstractions can cause spurious results, which need to be verified in the concrete system to gain conclusive results. Verification based on multi-valued model checking can distinguish conclusive and inconclusive results, while increasing precision over traditional two-valued overand under-abstractions. This paper describes the theory and implementation of multi-valued model c...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005